/* This program is free software. It comes without any warranty, to
 * the extent permitted by applicable law. You can redistribute it
 * and/or modify it under the terms of the Do What The Fuck You Want
 * To Public License, Version 2, as published by Sam Hocevar. See
 * http://sam.zoy.org/wtfpl/COPYING for more details. */ 
package de.rockon.fuzzy.controller.gui.util;

import com.jgoodies.looks.LookUtils;
import com.jgoodies.looks.Options;

/**
 * Unsere Look and Feels.
 */
public enum LookAndFeels {
	/** Das Default Windows XP-Theme */
	Default(),
	/** BusinessBlueSteel */
	BusinessBlueSteel("BusinessBlueSteel", "org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"),
	/** BusinessBlackSteel */
	BusinessBlackSteel("BusinessBlackSteel", "org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel"),
	/** Creme */
	Creme("Creme", "org.jvnet.substance.skin.SubstanceCremeLookAndFeel"),
	/** CremeCoffee */
	CremeCoffee("CremeCoffee", "org.jvnet.substance.skin.SubstanceCremeCoffeeLookAndFeel"),
	/** MistAqua */
	MistAqua("MistAqua", "org.jvnet.substance.skin.SubstanceMistAquaLookAndFeel"),
	/** Mango */
	Mango("Mango", "org.jvnet.substance.skin.SubstanceMangoLookAndFeel"),
	/** RavenGraphite */
	RavenGraphite("RavenGraphite", "org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel"),
	/** Raven */
	Raven("Raven", "org.jvnet.substance.skin.SubstanceRavenLookAndFeel");

	/**
	 * der Name des Enums
	 */
	private final String name;
	private final String lookAndFeel;

	/**
	 * Konstruktor
	 */
	LookAndFeels() {
		name = "WinXP (default)";
		lookAndFeel = LookUtils.IS_OS_WINDOWS_XP ? Options.getCrossPlatformLookAndFeelClassName() : Options.getSystemLookAndFeelClassName();

	}

	/**
	 * Konstruktor
	 */
	LookAndFeels(String name, String lookandFeel) {
		this.name = name;
		lookAndFeel = lookandFeel;
	}

	public String getLookAndFeel() {
		return lookAndFeel;
	}

	public String getName() {
		return name;
	}

	@Override
	public String toString() {
		return lookAndFeel;
	}

}
